-- CONSIDERACIONES
-- (*) las distancias estan ordenadas
-- (*) nunca puede darse el caso de que me quede sin nafta antes de alcanzar una ciudad
-- con la autonomia que tiene mi auto

import Data.List

viaje :: Int -> [Int] -> Int
viaje autonomia distancias = viajeRec autonomia distancias 0

viajeRec :: Int -> [Int] -> Int -> Int
viajeRec _ [] paradas = paradas
viajeRec autonomia (x:xs) paradas 
	| length(ciudadesRestantes) == 0 = paradas
    | otherwise = viajeRec autonomia ciudadesRestantes' (paradas+1)
		where
			ciudadesRestantes = dropWhile (<= autonomia) (x:xs)
			ciudadDondeFrena  = last ((x:xs)\\ciudadesRestantes) -- le resto a la lista original las ciudades que me faltan por recorrer
			ciudadesRestantes' = [(city-ciudadDondeFrena)| city <- ciudadesRestantes] -- actualizo la distancia a la que me encuentro de
																					  -- las ciudades restantes	 									
